package org.wzl.personalwebsite.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * MyBatis字段填充配置
 *
 * @author: 卫志龙
 * @date: 2023年11月18日 09:34
 */
@Component
public class MyBatisFiledFillConfig implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        Object createDate = getFieldValByName("createDate", metaObject);
        if(null == createDate){
            // 该属性为空，可以进行填充
            setFieldValByName("createDate", LocalDateTime.now(),metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        Object updateDate = getFieldValByName("updateDate", metaObject);
        if (null == updateDate) {
            // 该属性为空，可以进行填充
            setFieldValByName("updateDate", LocalDateTime.now(),metaObject);
        } else {
            this.strictUpdateFill(metaObject, "updateDate", LocalDateTime.class, LocalDateTime.now());
        }
    }
}